scrolledwindow: Properly remove scrollbars
authorTimm Bäder <mail@baedert.org>
Sat, 27 May 2017 07:47:56 +0000 (09:47 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 20 Jul 2017 01:27:13 +0000 (21:27 -0400)
Instead of keeping an extra ref, then unparent+destroy+unref, don't keep
an extra ref and just unparent the scrollbar when appropriate.

gtk/gtkscrolledwindow.c

index 5b817ad6d4cd23fd09fa01b6d04b8c20e55754c3..f24df8bb8b3b21a6ef760bb09bae889caa3f9dff 100644 (file)
@@ -2015,7 +2015,6 @@ gtk_scrolled_window_set_hadjustment (GtkScrolledWindow *scrolled_window,
       priv->hscrollbar = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, hadjustment);
 
       gtk_widget_set_parent (priv->hscrollbar, GTK_WIDGET (scrolled_window));
-      g_object_ref (priv->hscrollbar);
       update_scrollbar_positions (scrolled_window);
     }
   else
@@ -2082,7 +2081,6 @@ gtk_scrolled_window_set_vadjustment (GtkScrolledWindow *scrolled_window,
       priv->vscrollbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, vadjustment);
 
       gtk_widget_set_parent (priv->vscrollbar, GTK_WIDGET (scrolled_window));
-      g_object_ref (priv->vscrollbar);
       update_scrollbar_positions (scrolled_window);
     }
   else
@@ -2532,8 +2530,6 @@ gtk_scrolled_window_destroy (GtkWidget *widget)
                                            gtk_scrolled_window_adjustment_changed,
                                            scrolled_window);
       gtk_widget_unparent (priv->hscrollbar);
-      gtk_widget_destroy (priv->hscrollbar);
-      g_object_unref (priv->hscrollbar);
       priv->hscrollbar = NULL;
     }
   if (priv->vscrollbar)
@@ -2542,8 +2538,6 @@ gtk_scrolled_window_destroy (GtkWidget *widget)
                                            gtk_scrolled_window_adjustment_changed,
                                            scrolled_window);
       gtk_widget_unparent (priv->vscrollbar);
-      gtk_widget_destroy (priv->vscrollbar);
-      g_object_unref (priv->vscrollbar);
       priv->vscrollbar = NULL;
     }